<?php
/*
 * 测试代码的性能的一个类
 * 可以返回程序执行的时间和获取没有释放资源的对象.
 * */
header("Content-type: text/html; charset=utf-8");
class Debug{
    private $time;          //测试开始的时间戳
    /*
     * 构造方法
     * 记录开始的时间
     * */
    public function __construct(){
        $this->time = microtime(true);
    }

    /*
     * 结束测试
     * 返回测试的时间和未释放的资源
     * */
    public function end($all_obj=array()){
        $use_time =  round(microtime(true)-$this->time,3);  //保留3位小数
        echo "<h3>时间消耗: <u>".$use_time."</u> 毫秒</h3>";
        echo "<h3>未释放的资源对象:</h3>";
        echo "<ul style='color: red'>";
        foreach($all_obj as $k => $v){
            if(!$v instanceof $this) {          //仅仅显示本类以外的对象
                echo "<li>$" . $k . "</li>";
            }
        }
        echo "</ul>";
        unset($use_time,$all_obj);          //释放无用资源
    }
}